/**
 * 语言包
 */
// 1，引入vue
import Vue from "vue";
// 2，引入国家化组件
import VueI18n from "vue-i18n";

// 3，引入自定义的语言包
import enLocale from './en';
import zhLocale from './zh';

// 4，引入语言包
Vue.use(VueI18n);

// 引入存储对象
import db from '@/utils/localstorage'

// 5，定义自己的message对象{...enLocale} 这种语法表示将enLocale对象解析给en,相当于是后端的copyProperties(source,target),将自己的属性复制给目标属性
const messages = {
    en:{
        ...enLocale
    },
    zh:{
        ...zhLocale
    }
}

// 定义一个获取系统语言的方法
// 后面可以通过设置缓存的语言对象来设置系统的国际化
export function getLanguage(){
    const chooseLanguage = db.get('Language','');
    if(chooseLanguage && ['zh','en'].indexOf(chooseLanguage) != -1){
        return chooseLanguage;
    }else {
        // 给一个默认值
        return 'zh';
    }
}

// 定义获取化组件I18n
/**
 * 三个属性
 * locale 语言类型 zh|en
 * messages messages
 * silentTranslationWarn 在创建VueI18n实例时，可以添加这行代码配置，关闭控制台waring提示信息。
 * @type {VueI18n}
 */
const i18n = new VueI18n({
    locale:getLanguage(),
    messages,
    silentTranslationWarn:true
})

export default i18n;

